
package com.bjsxt;

import java.util.Set;
import java.util.TreeSet;

/**TreeSet 容器类
 * TreeSet 是一个可以对元素进行排序的容器，底层实际是用TreeMap实现的，内部维持了一个简化
 * 版的TreeMap，通过Key来存储Set的元素。TreeSet内部部需要对存储的元素进行 排序，因此
 * 我们需要给定排序规则：1，通过元素自身实现比较规则。2，通过比效器指定比较规则
 * */
public class TestTreeSet {
    public static void main(String[] args) {
        //实例化
        Set<String> set = new TreeSet<>();
        //添加元素
        set.add("c");
        set.add("b");
        set.add("a");
        set.add("a");
        //获取元素  自动排序，String类自身实现规则，因为实现的接口comparable接口里的compareTo方法
        //Integer类型也可以自动排序，因为compareTo方法
        for(String str:set){
            System.out.println(str);//a,b,c
        }

        System.out.println("-----------");
        //泛型类有User
        Set<Users> set1 = new TreeSet<>();
        Users u = new Users("oldlu",18);
        Users u1 = new Users("admin",22);
        Users u2 = new Users("sxt",22);
        set1.add(u);
        set1.add(u1);
        set1.add(u2);
        for(Users users: set1){
        //ClassCastException: com.bjsxt.User cannot be cast to java.lang.Comparable
            System.out.println(users); //出现异常 要在Users 类重写compareTo方法
        }
    }


}
